package controlador;

import java.awt.AWTEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import modeloDAO.NivelDAO;
import modeloDAO.RecordDAO;
import modeloDTO.Record;
import vista.VistaPuntuaciones;
import vista.VistaPuntuacionesModeloTabla;

public class ControladorVistaPuntuaciones implements ActionListener{

	private VistaPuntuaciones  vistaPuntuaciones;
	private NivelDAO nivelDAO = new NivelDAO();
	private RecordDAO recordDAO = new RecordDAO();
	
	public ControladorVistaPuntuaciones() {
		super();
		this.vistaPuntuaciones = new VistaPuntuaciones();
		this.vistaPuntuaciones.setLocation(480,210);
		this.vistaPuntuaciones.setVisible(true);
		this.vistaPuntuaciones.setLocationRelativeTo(null);
		this.vistaPuntuaciones.addListener(this);
		recordDAO = new RecordDAO();
		cargarPuntuaciones("1");	
		List<String> niveles = new ArrayList<String>();
		nivelDAO = new NivelDAO();
		niveles = NivelDAO.consultarNombreNiveles();
		//vistaPuntuaciones.setCargarComboNivel(niveles);
	}

	public ControladorVistaPuntuaciones(String codigoNivel) {
		super();
		nivelDAO = new NivelDAO();
		cargarPuntuaciones(codigoNivel);
	}

	public void actionPerformed(ActionEvent e) {
		
		if(e.getActionCommand().equals("Salir")){
			vistaPuntuaciones.dispose();
		}
		
		if(!(vistaPuntuaciones.getJcmbNiveles().equals(AWTEvent.MOUSE_EVENT_MASK))){	
			cargarPuntuaciones(nivelDAO.consultarNivelCodigo(vistaPuntuaciones.getJcmbNiveles()));
		}
	}
	
	private void cargarPuntuaciones(String codigoNivel){
		recordDAO = new RecordDAO();
		List<Record> puntuaciones = recordDAO.consultarPuntuaciones(codigoNivel);
		this.vistaPuntuaciones.setResultados(new VistaPuntuacionesModeloTabla(puntuaciones));
		
	}

}
